<html xmlns="http://www.w3.org/1999/xhtml">
<head>
 <title>LZXリファレンス connectiondatasource</title>
  <othercredit role="translator">
    <firstname>Atuo</firstname>
    <surname>Seki</surname>
        <contrib>2006/05/08　翻訳初版</contrib>
 </othercredit>
<link rel="STYLESHEET" type="text/css" href="./styles.css" /></head>
<body>

<!-- ===================================================================== -->
<!-- = XML information goes here                                         = -->
<!-- ===================================================================== -->
<lzelement title="Connectiondatasource">
    <lztier>LFC</lztier>
    <lzcategory>Persistent Connection</lzcategory>
    <lzshortdesc>
    	永続的コネクション時にメッセージを取得、送信できるデータソース。
    </lzshortdesc>
    <lztag>tag-connectiondatasource.xml</lztag>
    <lzapi>api-lzconnectiondatasource.xml</lzapi>
</lzelement>

<p><tagname>connection</tagname>タグに入ってくるデータセットを
<tagname>connectiondatasource</tagname>に宣言してください。
<tagname>connection</tagname>タグと異なり、
<tagname>connectiondatasource</tagname>タグはライブラリーで宣言できます。
</p>

<p>コネクションデータソースを使いメッセージ送信、コネクションユーザーリストを取得できます。
</p>

<example title="Sending and receiving asynchronous messages" >
&lt;canvas debug="true" height="200" width="400"&gt;
  &lt;debug y="60"/&gt;

  &lt;connection authenticator="anonymous"&gt;
    &lt;method event="onconnect"&gt;
      Debug.write("persistent connection established");
    &lt;/method&gt;
    &lt;method event="ondisconnect"&gt;
      Debug.write("persistent connection closed");
    &lt;/method&gt;
  &lt;/connection&gt;

  &lt;connectiondatasource name="mycd"&gt;
    &lt;dataset name="dsetMessage" /&gt;
    &lt;dataset name="dsetXML" /&gt;
  &lt;/connectiondatasource&gt;

  &lt;!-- Datapointer to listen for persistent connection messages --&gt;
  &lt;datapointer xpath="mycd:dsetMessage:/*[1]"&gt;
    &lt;method event="ondata"&gt;
      var from = this.xpathQuery('/from[0]/@name');
      var mesg = this.xpathQuery('/text()');
      Debug.write("got message (from " + from + "): '"+ mesg + "'");
    &lt;/method&gt;
  &lt;/datapointer&gt;

  &lt;!-- Datapointer to listen for persistent connection XML messages --&gt;
  &lt;datapointer xpath="mycd:dsetXML:/*[1]"&gt;
    &lt;method event="ondata"&gt;
      var mesg = this.xpathQuery('/myxml/text()');
      Debug.write("got xml mesg: '" + mesg + "'");
    &lt;/method&gt;
  &lt;/datapointer&gt;

  &lt;!-- Datapointer to listen for result of sendMessage call. --&gt;
  &lt;datapointer xpath="mycd:sendMessageDset:/*[1]"&gt;
    &lt;method event="ondata" args="d"&gt;
      Debug.write("d", d);
    &lt;/method&gt;
    &lt;method event="onerror" args="dset"&gt;
      Debug.write("error sending message: " + dset.errorstring);
    &lt;/method&gt;
  &lt;/datapointer&gt;

  &lt;!-- Datapointer to listen for result of sendXML call. --&gt;
  &lt;datapointer xpath="mycd:sendXMLDset:/*[1]"&gt;
    &lt;method event="ondata" args="d"&gt;
      Debug.write("d", d);
    &lt;/method&gt;
    &lt;method event="onerror" args="dset"&gt;
        Debug.write("error sending XML: " + dset.errorstring);
    &lt;/method&gt;
  &lt;/datapointer&gt;
  
  &lt;view x="10" y="10" layout="class: simplelayout; axis: x; spacing: 10"&gt;
    &lt;button onclick="connection.connect()" text="connect" /&gt;
    &lt;button onclick="connection.disconnect()" text="disconnect" /&gt;

    &lt;button&gt;send hello
      &lt;method event="onclick"&gt;
        mycd.sendMessage("*", "hello, world", "dsetMessage");
      &lt;/method&gt;
    &lt;/button&gt;

    &lt;button&gt;send XML
      &lt;method event="onclick"&gt;
      &lt;![CDATA[
          mycd.sendXML("*", "&lt;myxml&gt;hello, xml&lt;/myxml&gt;", "dsetXML");
      ]]&gt;
      &lt;/method&gt;
    &lt;/button&gt;
  &lt;/view&gt;
&lt;/canvas&gt;
</example>

<p>コネクションデータソース、永続的な接続に関して詳しい説明は、<i>永続的なコネクション</i>
のドキュメントをご覧ください。</p>

<h2>Sample-Apps</h2>
<p>&lt;connectiondatasource&gt;が使用されているサンプルアプリケーション：</p>
<ul>
    <li> <a href="${demos}chat/chat.lzx?lzt=html">Chat</a></li>
    <li> <a href="${demos}dashboard/dashboard.lzx?lzt=html">Dashboard</a></li>
</ul>

<seealso>
<classes>connection</classes>
</seealso>

</body>
</html>
<!-- * X_LZ_COPYRIGHT_BEGIN ***************************************************
* Copyright 2001-2004 Laszlo Systems, Inc.  All Rights Reserved.              *
* Use is subject to license terms.                                            *
* X_LZ_COPYRIGHT_END ****************************************************** -->
